﻿// Copyright (c) 2012 Mokah Nnamezie & Andrew Cooper
// Neo4Net graph database - http://neo4net.codeplex.com
//
// This file is part of Neo4Net - a .Net port of the Neo4j graph database
//
// Neo4Net is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace Neo4Net.Kernel.Impl.Nioneo.Xa
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
using Neo4Net.Kernel.Impl.Nioneo.Store;
using Neo4Net.Kernel.Configuration;
using Neo4Net.Kernel.Impl.Core;
using Neo4Net.Kernel.Impl.Transaction;
    using Neo4Net.Kernel.Impl.Transaction.XaFramework;
    using Neo4Net.Kernel.Impl.Util;
    using Neo4Net.GraphDb;

    public class NeoStoreXaDataSource : LogBackedXaDataSource
    {
        public NeoStoreXaDataSource(Config config, StoreFactory sf, IFileSystemAbstraction fileSystemAbstraction,
                                    LockManager lockManager, LockReleaser lockReleaser, StringLogger logger, XaFactory xaFactory, 
                                    IList<Tuple<TransactionInterceptorProvider, Object>> providers, IDependencyResolver dependencyResolver)
        {
            throw new NotImplementedException();
        }

        internal NeoStoreXaConnection GetXaConnection()
        {
            throw new NotImplementedException();
        }

        public NeoStoreXaConnection XaConnection { get; set; }

        internal void Close()
        {
            throw new NotImplementedException();
        }

        internal int NextId(Type type)
        {
            throw new NotImplementedException();
        }


        internal void RotateLogicalLog()
        {
            throw new NotImplementedException();
        }

        public long CreationTime { get; set; }

        public long RandomIdentifier { get; set; }

        public long CurrentLogVersion { get; set; }

        internal object IncrementAndGetLogVersion()
        {
            throw new NotImplementedException();
        }

        internal void KeepLogicalLogs(bool p)
        {
            throw new NotImplementedException();
        }

        internal System.IO.Stream GetLogicalLog(long version)
        {
            throw new NotImplementedException();
        }
    }
}
